package com.qining618.cms.ucenter.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.qining618.cms.ucenter.enums.UserAuthTypeEnum;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * <p>
 * 授权用户
 * </p>
 *
 * @author qining
 * @date 2019-09-23
 */
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("o_user_auth")
public class UserAuth implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户id
     */
    @TableField("`user_id`")
    private Long userId;

    /**
     * 类型
     */
    @TableField("`type`")
    private UserAuthTypeEnum type;

    /**
     * AppID
     */
    @TableField("`appid`")
    private String appid;

    /**
     * 用户公众平台唯一标识
     */
    @TableField("`openid`")
    private String openid;

    /**
     * 用户开放平台唯一标识
     */
    @TableField("`unionid`")
    private String unionid;

    /**
     * 用户昵称
     */
    @TableField("`nickname`")
    private String nickname;

    /**
     * 用户头像
     */
    @TableField("`headimgurl`")
    private String headimgurl;

    /**
     * 用户性别 0保密 1男 2女
     */
    @TableField("`sex`")
    private Integer sex;

    /**
     * 用户所在国家
     */
    @TableField("`country`")
    private String country;

    /**
     * 用户所在省
     */
    @TableField("`province`")
    private String province;

    /**
     * 用户所在城市
     */
    @TableField("`city`")
    private String city;

    /**
     * 语言
     */
    @TableField("`language`")
    private String language;

    /**
     * 推荐人id
     */
    @TableField("`parent_id`")
    private Long parentId;

    /**
     * 授权接口调用凭证
     */
    @TableField("`access_token`")
    private String accessToken;

    /**
     * 刷新access_token
     */
    @TableField("`refresh_token`")
    private String refreshToken;

    /**
     * 过期时间
     */
    @TableField("`expires_time`")
    private Date expiresTime;

    /**
     * 创建时间
     */
    @TableField("`ctime`")
    private Date ctime;

    /**
     * 修改时间
     */
    @TableField("`mtime`")
    private Date mtime;


}
